[INFO] fetching crate dsf-core 0.2.0...
[INFO] checking dsf-core-0.2.0 against master#158f00a1c5175648af6f6099b075f78d1d014a28 for pr-121251
[INFO] extracting crate dsf-core 0.2.0 into /workspace/builds/worker-0-tc1/source
[INFO] validating manifest of crates.io crate dsf-core 0.2.0 on toolchain 158f00a1c5175648af6f6099b075f78d1d014a28
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate dsf-core 0.2.0
[INFO] finished tweaking crates.io crate dsf-core 0.2.0
[INFO] tweaked toml for crates.io crate dsf-core 0.2.0 written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded no-std-net v0.3.0
[INFO] [stderr]   Downloaded diesel v1.4.8
[INFO] [stderr]   Downloaded sodiumoxide v0.2.7
[INFO] [stderr]   Downloaded libsodium-sys v0.2.7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c23b3d521b561a493540683462d562877646e02bcfa200a6b97e2cdb60ca12eb
[INFO] running `Command { std: "docker" "start" "-a" "c23b3d521b561a493540683462d562877646e02bcfa200a6b97e2cdb60ca12eb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c23b3d521b561a493540683462d562877646e02bcfa200a6b97e2cdb60ca12eb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c23b3d521b561a493540683462d562877646e02bcfa200a6b97e2cdb60ca12eb", kill_on_drop: false }`
[INFO] [stdout] c23b3d521b561a493540683462d562877646e02bcfa200a6b97e2cdb60ca12eb
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5def25240d9b1546fd462477a97a0202dab7407efa6977644c29770fb68d4161
[INFO] running `Command { std: "docker" "start" "-a" "5def25240d9b1546fd462477a97a0202dab7407efa6977644c29770fb68d4161", kill_on_drop: false }`
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]     Checking byte-tools v0.3.1
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]     Checking signature v1.6.4
[INFO] [stderr]     Checking fake-simd v0.1.2
[INFO] [stderr]    Compiling num-traits v0.2.18
[INFO] [stderr]    Compiling heck v0.3.3
[INFO] [stderr]     Checking opaque-debug v0.2.3
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking base64 v0.12.3
[INFO] [stderr]     Checking strum v0.20.0
[INFO] [stderr]     Checking generic-array v0.12.4
[INFO] [stderr]    Compiling thiserror-impl v1.0.57
[INFO] [stderr]     Checking managed v0.7.2
[INFO] [stderr]     Checking slice-ext v0.1.4
[INFO] [stderr]     Checking block-padding v0.1.5
[INFO] [stderr]     Checking bytes v0.5.6
[INFO] [stderr]     Checking ed25519 v1.5.3
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]     Checking digest v0.8.1
[INFO] [stderr]     Checking block-buffer v0.7.3
[INFO] [stderr]     Checking sha2 v0.8.2
[INFO] [stderr]    Compiling libsodium-sys v0.2.7
[INFO] [stderr]     Checking chrono v0.4.34
[INFO] [stderr]     Checking thiserror v1.0.57
[INFO] [stderr]    Compiling strum_macros v0.20.1
[INFO] [stderr]     Checking sodiumoxide v0.2.7
[INFO] [stderr]     Checking dsf-core v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::timestamp`: use `timestamp_opt()` instead
[INFO] [stdout]   --> src/types/datetime.rs:27:21
[INFO] [stdout]    |
[INFO] [stdout] 27 |         let u = Utc.timestamp(self.0 as i64, 0);
[INFO] [stdout]    |                     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::timestamp`: use `timestamp_opt()` instead
[INFO] [stdout]   --> src/types/datetime.rs:34:21
[INFO] [stdout]    |
[INFO] [stdout] 34 |         let u = Utc.timestamp(self.0 as i64, 0);
[INFO] [stdout]    |                     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::timestamp`: use `timestamp_opt()` instead
[INFO] [stdout]   --> src/types/datetime.rs:42:21
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let u = Utc.timestamp(self.0 as i64, 0);
[INFO] [stdout]    |                     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::timestamp`: use `timestamp_opt()` instead
[INFO] [stdout]   --> src/types/datetime.rs:27:21
[INFO] [stdout]    |
[INFO] [stdout] 27 |         let u = Utc.timestamp(self.0 as i64, 0);
[INFO] [stdout]    |                     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::timestamp`: use `timestamp_opt()` instead
[INFO] [stdout]   --> src/types/datetime.rs:34:21
[INFO] [stdout]    |
[INFO] [stdout] 34 |         let u = Utc.timestamp(self.0 as i64, 0);
[INFO] [stdout]    |                     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::timestamp`: use `timestamp_opt()` instead
[INFO] [stdout]   --> src/types/datetime.rs:42:21
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let u = Utc.timestamp(self.0 as i64, 0);
[INFO] [stdout]    |                     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0616]: field `0` of struct `sodiumoxide::crypto::sign::Signature` is private
[INFO] [stdout]   --> src/crypto/sodium.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 |     Ok(sig.0.into())
[INFO] [stdout]    |            ^ private field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `from_slice` found for struct `sodiumoxide::crypto::sign::Signature` in the current scope
[INFO] [stdout]    --> src/crypto/sodium.rs:39:41
[INFO] [stdout]     |
[INFO] [stdout] 39  |     let sig = sign::ed25519::Signature::from_slice(signature).unwrap();
[INFO] [stdout]     |                                         ^^^^^^^^^^ function or associated item not found in `Signature`
[INFO] [stdout]     |
[INFO] [stdout] note: if you're trying to build a new `sodiumoxide::crypto::sign::Signature` consider using one of the following associated functions:
[INFO] [stdout]       sodiumoxide::crypto::sign::Signature::from_bytes
[INFO] [stdout]       sodiumoxide::crypto::sign::Signature::new
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/ed25519-1.5.3/src/lib.rs:291:5
[INFO] [stdout]     |
[INFO] [stdout] 291 |     pub fn from_bytes(bytes: &[u8]) -> signature::Result<Self> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 330 |     pub fn new(bytes: [u8; Self::BYTE_SIZE]) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0616]: field `0` of struct `sodiumoxide::crypto::sign::Signature` is private
[INFO] [stdout]   --> src/crypto/sodium.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 |     Ok(sig.0.into())
[INFO] [stdout]    |            ^ private field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `from_slice` found for struct `sodiumoxide::crypto::sign::Signature` in the current scope
[INFO] [stdout]    --> src/crypto/sodium.rs:39:41
[INFO] [stdout]     |
[INFO] [stdout] 39  |     let sig = sign::ed25519::Signature::from_slice(signature).unwrap();
[INFO] [stdout]     |                                         ^^^^^^^^^^ function or associated item not found in `Signature`
[INFO] [stdout]     |
[INFO] [stdout] note: if you're trying to build a new `sodiumoxide::crypto::sign::Signature` consider using one of the following associated functions:
[INFO] [stdout]       sodiumoxide::crypto::sign::Signature::from_bytes
[INFO] [stdout]       sodiumoxide::crypto::sign::Signature::new
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/ed25519-1.5.3/src/lib.rs:291:5
[INFO] [stdout]     |
[INFO] [stdout] 291 |     pub fn from_bytes(bytes: &[u8]) -> signature::Result<Self> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 330 |     pub fn new(bytes: [u8; Self::BYTE_SIZE]) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors; 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0599, E0616.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0599`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `dsf-core` (lib) due to 3 previous errors; 3 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: aborting due to 2 previous errors; 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0599, E0616.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0599`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `dsf-core` (lib test) due to 3 previous errors; 3 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "5def25240d9b1546fd462477a97a0202dab7407efa6977644c29770fb68d4161", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5def25240d9b1546fd462477a97a0202dab7407efa6977644c29770fb68d4161", kill_on_drop: false }`
[INFO] [stdout] 5def25240d9b1546fd462477a97a0202dab7407efa6977644c29770fb68d4161
[INFO] checking dsf-core-0.2.0 against try#b4fc5dbf0bc33be331f9d893db5b3a794f29724a+rustflags=-Dexplicit_range -Dtrait_impl_range -Wrange_syntax -Wrange_bounds for pr-121251
[INFO] extracting crate dsf-core 0.2.0 into /workspace/builds/worker-0-tc2/source
[INFO] validating manifest of crates.io crate dsf-core 0.2.0 on toolchain b4fc5dbf0bc33be331f9d893db5b3a794f29724a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate dsf-core 0.2.0
[INFO] finished tweaking crates.io crate dsf-core 0.2.0
[INFO] tweaked toml for crates.io crate dsf-core 0.2.0 written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 5b8ac2f22455a64e2bba00c465b3736760a8ae477529b31361ba725c6eb90f9e
[INFO] running `Command { std: "docker" "start" "-a" "5b8ac2f22455a64e2bba00c465b3736760a8ae477529b31361ba725c6eb90f9e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5b8ac2f22455a64e2bba00c465b3736760a8ae477529b31361ba725c6eb90f9e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5b8ac2f22455a64e2bba00c465b3736760a8ae477529b31361ba725c6eb90f9e", kill_on_drop: false }`
[INFO] [stdout] 5b8ac2f22455a64e2bba00c465b3736760a8ae477529b31361ba725c6eb90f9e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dexplicit_range -Dtrait_impl_range -Wrange_syntax -Wrange_bounds" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7d2f9d41c50c2b51c1e1707b57a4f176ae5ca146cdb157062bb29548d74a0ed5
[INFO] running `Command { std: "docker" "start" "-a" "7d2f9d41c50c2b51c1e1707b57a4f176ae5ca146cdb157062bb29548d74a0ed5", kill_on_drop: false }`
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]     Checking byte-tools v0.3.1
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]     Checking signature v1.6.4
[INFO] [stderr]     Checking fake-simd v0.1.2
[INFO] [stderr]    Compiling num-traits v0.2.18
[INFO] [stderr]    Compiling heck v0.3.3
[INFO] [stderr]     Checking opaque-debug v0.2.3
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking managed v0.7.2
[INFO] [stderr]     Checking base64 v0.12.3
[INFO] [stderr]     Checking strum v0.20.0
[INFO] [stderr]     Checking slice-ext v0.1.4
[INFO] [stderr]     Checking generic-array v0.12.4
[INFO] [stderr]    Compiling thiserror-impl v1.0.57
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking block-padding v0.1.5
[INFO] [stderr]     Checking bytes v0.5.6
[INFO] [stderr]     Checking ed25519 v1.5.3
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]     Checking digest v0.8.1
[INFO] [stderr]     Checking block-buffer v0.7.3
[INFO] [stderr]     Checking sha2 v0.8.2
[INFO] [stderr]    Compiling libsodium-sys v0.2.7
[INFO] [stderr]     Checking chrono v0.4.34
[INFO] [stderr]     Checking thiserror v1.0.57
[INFO] [stderr]    Compiling strum_macros v0.20.1
[INFO] [stderr]     Checking sodiumoxide v0.2.7
[INFO] [stderr]     Checking dsf-core v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/types/mod.rs:191:26
[INFO] [stdout]     |
[INFO] [stdout] 191 |                 for i in 0..self.0.len() {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 253 | arr!(Array32, 32);
[INFO] [stdout]     | ----------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: requested on the command line with `-W range-syntax`
[INFO] [stdout]     = note: this warning originates in the macro `arr` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/types/mod.rs:191:26
[INFO] [stdout]     |
[INFO] [stdout] 191 |                 for i in 0..self.0.len() {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 | arr!(Array64, 64);
[INFO] [stdout]     | ----------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `arr` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/crypto/sodium.rs:62:16
[INFO] [stdout]    |
[INFO] [stdout] 62 |     (&mut meta[MACBYTES..]).copy_from_slice(&nonce.0);
[INFO] [stdout]    |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/crypto/sodium.rs:72:53
[INFO] [stdout]    |
[INFO] [stdout] 72 |     let nonce = SodiumSecretNonce::from_slice(&meta[MACBYTES..]).unwrap();
[INFO] [stdout]    |                                                     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/crypto/sodium.rs:94:16
[INFO] [stdout]    |
[INFO] [stdout] 94 |     (&mut data[i..i + MACBYTES]).copy_from_slice(&tag.0);
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/crypto/sodium.rs:96:16
[INFO] [stdout]    |
[INFO] [stdout] 96 |     (&mut data[i..i + NONCEBYTES]).copy_from_slice(&nonce.0);
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/crypto/sodium.rs:114:49
[INFO] [stdout]     |
[INFO] [stdout] 114 |     let tag = SodiumSecretTag::from_slice(&data[i..i + MACBYTES]).unwrap();
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/crypto/sodium.rs:116:53
[INFO] [stdout]     |
[INFO] [stdout] 116 |     let nonce = SodiumSecretNonce::from_slice(&data[i..i + NONCEBYTES]).unwrap();
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/options/helpers.rs:17:52
[INFO] [stdout]    |
[INFO] [stdout] 17 |         let length = NetworkEndian::read_u16(&data[0..2]) as usize;
[INFO] [stdout]    |                                                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/options/helpers.rs:18:42
[INFO] [stdout]    |
[INFO] [stdout] 18 |         let value = str::from_utf8(&data[2..2 + length]).unwrap().to_owned();
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/options/helpers.rs:30:44
[INFO] [stdout]    |
[INFO] [stdout] 30 |         NetworkEndian::write_u16(&mut data[0..], value.len() as u16);
[INFO] [stdout]    |                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/options/helpers.rs:31:19
[INFO] [stdout]    |
[INFO] [stdout] 31 |         &mut data[2..value.len() + 2].copy_from_slice(value);
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/options/helpers.rs:43:37
[INFO] [stdout]    |
[INFO] [stdout] 43 |         let value = Vec::from(&data[2..2 + length]);
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/options/helpers.rs:54:19
[INFO] [stdout]    |
[INFO] [stdout] 54 |         &mut data[2..self.len() + 2].copy_from_slice(self);
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/options/helpers.rs:65:49
[INFO] [stdout]    |
[INFO] [stdout] 65 |         let raw = NetworkEndian::read_u64(&data[0..]);
[INFO] [stdout]    |                                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/options/helpers.rs:79:44
[INFO] [stdout]    |
[INFO] [stdout] 79 |         NetworkEndian::write_u64(&mut data[2..], time_s);
[INFO] [stdout]    |                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/options/mod.rs:86:39
[INFO] [stdout]    |
[INFO] [stdout] 86 |         let rem = &self.buff.as_ref()[self.index..];
[INFO] [stdout]    |                                       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/options/mod.rs:139:25
[INFO] [stdout]     |
[INFO] [stdout] 139 |             rem = &data[i..];
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/options/mod.rs:150:37
[INFO] [stdout]     |
[INFO] [stdout] 150 |             i += o.encode(&mut data[i..])?;
[INFO] [stdout]     |                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:223:57
[INFO] [stdout]     |
[INFO] [stdout] 223 |         let option_kind = NetworkEndian::read_u16(&data[0..2]);
[INFO] [stdout]     |                                                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:224:56
[INFO] [stdout]     |
[INFO] [stdout] 224 |         let option_len = NetworkEndian::read_u16(&data[2..4]) as usize;
[INFO] [stdout]     |                                                        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:226:23
[INFO] [stdout]     |
[INFO] [stdout] 226 |         let d = &data[OPTION_HEADER_LEN..OPTION_HEADER_LEN + option_len];
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:338:44
[INFO] [stdout]     |
[INFO] [stdout] 338 |         NetworkEndian::write_u16(&mut data[0..2], option_kinds::PUBKEY);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:339:44
[INFO] [stdout]     |
[INFO] [stdout] 339 |         NetworkEndian::write_u16(&mut data[2..4], PUBLIC_KEY_LEN as u16);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:341:19
[INFO] [stdout]     |
[INFO] [stdout] 341 |         &mut data[OPTION_HEADER_LEN..OPTION_HEADER_LEN + PUBLIC_KEY_LEN]
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:380:44
[INFO] [stdout]     |
[INFO] [stdout] 380 |         NetworkEndian::write_u16(&mut data[0..2], option_kinds::PEER_ID);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:381:44
[INFO] [stdout]     |
[INFO] [stdout] 381 |         NetworkEndian::write_u16(&mut data[2..4], ID_LEN as u16);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:383:19
[INFO] [stdout]     |
[INFO] [stdout] 383 |         &mut data[OPTION_HEADER_LEN..OPTION_HEADER_LEN + ID_LEN].copy_from_slice(&self.peer_id);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:416:44
[INFO] [stdout]     |
[INFO] [stdout] 416 |         NetworkEndian::write_u16(&mut data[0..2], option_kinds::PREV_SIG);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:417:44
[INFO] [stdout]     |
[INFO] [stdout] 417 |         NetworkEndian::write_u16(&mut data[2..4], SIGNATURE_LEN as u16);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:419:19
[INFO] [stdout]     |
[INFO] [stdout] 419 |         &mut data[OPTION_HEADER_LEN..OPTION_HEADER_LEN + SIGNATURE_LEN].copy_from_slice(&self.sig);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:456:44
[INFO] [stdout]     |
[INFO] [stdout] 456 |         NetworkEndian::write_u16(&mut data[0..2], option_kinds::KIND);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:457:44
[INFO] [stdout]     |
[INFO] [stdout] 457 |         NetworkEndian::write_u16(&mut data[2..4], value.len() as u16);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:459:19
[INFO] [stdout]     |
[INFO] [stdout] 459 |         &mut data[OPTION_HEADER_LEN..OPTION_HEADER_LEN + value.len()].copy_from_slice(&value);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:494:44
[INFO] [stdout]     |
[INFO] [stdout] 494 |         NetworkEndian::write_u16(&mut data[0..2], option_kinds::NAME);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:495:44
[INFO] [stdout]     |
[INFO] [stdout] 495 |         NetworkEndian::write_u16(&mut data[2..4], self.value.len() as u16);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:497:19
[INFO] [stdout]     |
[INFO] [stdout] 497 |         &mut data[OPTION_HEADER_LEN..OPTION_HEADER_LEN + self.value.len()]
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:511:34
[INFO] [stdout]     |
[INFO] [stdout] 511 |         ip.copy_from_slice(&data[0..4]);
[INFO] [stdout]     |                                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:512:50
[INFO] [stdout]     |
[INFO] [stdout] 512 |         let port = NetworkEndian::read_u16(&data[4..6]);
[INFO] [stdout]     |                                                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:522:44
[INFO] [stdout]     |
[INFO] [stdout] 522 |         NetworkEndian::write_u16(&mut data[0..2], option_kinds::ADDR_IPV4);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:523:44
[INFO] [stdout]     |
[INFO] [stdout] 523 |         NetworkEndian::write_u16(&mut data[2..4], 6);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:525:19
[INFO] [stdout]     |
[INFO] [stdout] 525 |         &mut data[OPTION_HEADER_LEN..OPTION_HEADER_LEN + 4].copy_from_slice(&self.ip);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/options/mod.rs:526:44
[INFO] [stdout]     |
[INFO] [stdout] 526 |         NetworkEndian::write_u16(&mut data[OPTION_HEADER_LEN + 4..], self.port);
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:539:34
[INFO] [stdout]     |
[INFO] [stdout] 539 |         ip.copy_from_slice(&data[0..16]);
[INFO] [stdout]     |                                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:540:50
[INFO] [stdout]     |
[INFO] [stdout] 540 |         let port = NetworkEndian::read_u16(&data[16..18]);
[INFO] [stdout]     |                                                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:550:44
[INFO] [stdout]     |
[INFO] [stdout] 550 |         NetworkEndian::write_u16(&mut data[0..2], option_kinds::ADDR_IPV6);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:551:44
[INFO] [stdout]     |
[INFO] [stdout] 551 |         NetworkEndian::write_u16(&mut data[2..4], 18);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:553:19
[INFO] [stdout]     |
[INFO] [stdout] 553 |         &mut data[OPTION_HEADER_LEN..OPTION_HEADER_LEN + 16].copy_from_slice(&self.ip);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/options/mod.rs:554:44
[INFO] [stdout]     |
[INFO] [stdout] 554 |         NetworkEndian::write_u16(&mut data[OPTION_HEADER_LEN + 16..], self.port);
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:603:44
[INFO] [stdout]     |
[INFO] [stdout] 603 |         NetworkEndian::write_u16(&mut data[0..2], option_kinds::META);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:604:44
[INFO] [stdout]     |
[INFO] [stdout] 604 |         NetworkEndian::write_u16(&mut data[2..4], meta.len() as u16);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:606:19
[INFO] [stdout]     |
[INFO] [stdout] 606 |         &mut data[OPTION_HEADER_LEN..OPTION_HEADER_LEN + meta.len()]
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:638:49
[INFO] [stdout]     |
[INFO] [stdout] 638 |         let raw = NetworkEndian::read_u64(&data[0..8]);
[INFO] [stdout]     |                                                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:649:44
[INFO] [stdout]     |
[INFO] [stdout] 649 |         NetworkEndian::write_u16(&mut data[0..2], option_kinds::ISSUED);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:650:44
[INFO] [stdout]     |
[INFO] [stdout] 650 |         NetworkEndian::write_u16(&mut data[2..4], 8);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:652:44
[INFO] [stdout]     |
[INFO] [stdout] 652 |         NetworkEndian::write_u64(&mut data[4..12], self.when.as_secs());
[INFO] [stdout]     |                                            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:677:49
[INFO] [stdout]     |
[INFO] [stdout] 677 |         let raw = NetworkEndian::read_u64(&data[0..8]);
[INFO] [stdout]     |                                                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:687:44
[INFO] [stdout]     |
[INFO] [stdout] 687 |         NetworkEndian::write_u16(&mut data[0..2], option_kinds::EXPIRY);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:688:44
[INFO] [stdout]     |
[INFO] [stdout] 688 |         NetworkEndian::write_u16(&mut data[2..4], 8);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:690:44
[INFO] [stdout]     |
[INFO] [stdout] 690 |         NetworkEndian::write_u64(&mut data[4..12], self.when.as_secs());
[INFO] [stdout]     |                                            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:726:44
[INFO] [stdout]     |
[INFO] [stdout] 726 |         NetworkEndian::write_u16(&mut data[0..2], option_kinds::LIMIT);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:727:44
[INFO] [stdout]     |
[INFO] [stdout] 727 |         NetworkEndian::write_u16(&mut data[2..4], 4);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:728:44
[INFO] [stdout]     |
[INFO] [stdout] 728 |         NetworkEndian::write_u32(&mut data[4..8], self.n);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/base/body.rs:382:20
[INFO] [stdout]     |
[INFO] [stdout] 382 |             &mut d[0..raw.len()].copy_from_slice(&raw);
[INFO] [stdout]     |                    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/base/mod.rs:50:48
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let (v, n) = match T::parse(&self.buff[self.index..]) {
[INFO] [stdout]    |                                                ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/base/mod.rs:80:41
[INFO] [stdout]    |
[INFO] [stdout] 80 |             index += i.encode(&mut buff[index..])?;
[INFO] [stdout]    |                                         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/types/mod.rs:191:26
[INFO] [stdout]     |
[INFO] [stdout] 191 |                 for i in 0..self.0.len() {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 253 | arr!(Array32, 32);
[INFO] [stdout]     | ----------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: requested on the command line with `-W range-syntax`
[INFO] [stdout]     = note: this warning originates in the macro `arr` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/wire/header.rs:26:53
[INFO] [stdout]    |
[INFO] [stdout] 26 |         NetworkEndian::read_u16(&self.buff.as_ref()[offsets::PROTO_VERSION..])
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/wire/header.rs:30:53
[INFO] [stdout]    |
[INFO] [stdout] 30 |         NetworkEndian::read_u16(&self.buff.as_ref()[offsets::APPLICATION_ID..])
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/wire/header.rs:34:63
[INFO] [stdout]    |
[INFO] [stdout] 34 |         let raw = NetworkEndian::read_u16(&self.buff.as_ref()[offsets::OBJECT_KIND..]);
[INFO] [stdout]    |                                                               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/wire/header.rs:39:63
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let raw = NetworkEndian::read_u16(&self.buff.as_ref()[offsets::FLAGS..]);
[INFO] [stdout]    |                                                               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/wire/header.rs:44:53
[INFO] [stdout]    |
[INFO] [stdout] 44 |         NetworkEndian::read_u16(&self.buff.as_ref()[offsets::INDEX..])
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/wire/header.rs:48:53
[INFO] [stdout]    |
[INFO] [stdout] 48 |         NetworkEndian::read_u16(&self.buff.as_ref()[offsets::DATA_LEN..]) as usize
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/types/mod.rs:191:26
[INFO] [stdout]     |
[INFO] [stdout] 191 |                 for i in 0..self.0.len() {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 | arr!(Array64, 64);
[INFO] [stdout]     | ----------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `arr` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/wire/header.rs:52:53
[INFO] [stdout]    |
[INFO] [stdout] 52 |         NetworkEndian::read_u16(&self.buff.as_ref()[offsets::PRIVATE_OPTIONS_LEN..]) as usize
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/wire/header.rs:56:53
[INFO] [stdout]    |
[INFO] [stdout] 56 |         NetworkEndian::read_u16(&self.buff.as_ref()[offsets::PUBLIC_OPTIONS_LEN..]) as usize
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/crypto/sodium.rs:62:16
[INFO] [stdout]    |
[INFO] [stdout] 62 |     (&mut meta[MACBYTES..]).copy_from_slice(&nonce.0);
[INFO] [stdout]    |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/wire/header.rs:72:58
[INFO] [stdout]    |
[INFO] [stdout] 72 |         NetworkEndian::write_u16(&mut self.buff.as_mut()[offsets::PROTO_VERSION..], version)
[INFO] [stdout]    |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/wire/header.rs:78:37
[INFO] [stdout]    |
[INFO] [stdout] 78 |             &mut self.buff.as_mut()[offsets::APPLICATION_ID..],
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/crypto/sodium.rs:72:53
[INFO] [stdout]    |
[INFO] [stdout] 72 |     let nonce = SodiumSecretNonce::from_slice(&meta[MACBYTES..]).unwrap();
[INFO] [stdout]    |                                                     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/wire/header.rs:85:58
[INFO] [stdout]    |
[INFO] [stdout] 85 |         NetworkEndian::write_u16(&mut self.buff.as_mut()[offsets::FLAGS..], flags.bits())
[INFO] [stdout]    |                                                          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/crypto/sodium.rs:94:16
[INFO] [stdout]    |
[INFO] [stdout] 94 |     (&mut data[i..i + MACBYTES]).copy_from_slice(&tag.0);
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/wire/header.rs:90:58
[INFO] [stdout]    |
[INFO] [stdout] 90 |         NetworkEndian::write_u16(&mut self.buff.as_mut()[offsets::OBJECT_KIND..], kind.into())
[INFO] [stdout]    |                                                          ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/crypto/sodium.rs:96:16
[INFO] [stdout]    |
[INFO] [stdout] 96 |     (&mut data[i..i + NONCEBYTES]).copy_from_slice(&nonce.0);
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/wire/header.rs:95:58
[INFO] [stdout]    |
[INFO] [stdout] 95 |         NetworkEndian::write_u16(&mut self.buff.as_mut()[offsets::INDEX..], index)
[INFO] [stdout]    |                                                          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/crypto/sodium.rs:114:49
[INFO] [stdout]     |
[INFO] [stdout] 114 |     let tag = SodiumSecretTag::from_slice(&data[i..i + MACBYTES]).unwrap();
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/wire/header.rs:101:37
[INFO] [stdout]     |
[INFO] [stdout] 101 |             &mut self.buff.as_mut()[offsets::DATA_LEN..],
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/wire/header.rs:109:37
[INFO] [stdout]     |
[INFO] [stdout] 109 |             &mut self.buff.as_mut()[offsets::PRIVATE_OPTIONS_LEN..],
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/crypto/sodium.rs:116:53
[INFO] [stdout]     |
[INFO] [stdout] 116 |     let nonce = SodiumSecretNonce::from_slice(&data[i..i + NONCEBYTES]).unwrap();
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/wire/header.rs:117:37
[INFO] [stdout]     |
[INFO] [stdout] 117 |             &mut self.buff.as_mut()[offsets::PUBLIC_OPTIONS_LEN..],
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/wire/builder.rs:56:11
[INFO] [stdout]    |
[INFO] [stdout] 56 |         d[HEADER_LEN..HEADER_LEN + ID_LEN].clone_from_slice(id);
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/options/helpers.rs:17:52
[INFO] [stdout]    |
[INFO] [stdout] 17 |         let length = NetworkEndian::read_u16(&data[0..2]) as usize;
[INFO] [stdout]    |                                                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/wire/builder.rs:95:43
[INFO] [stdout]    |
[INFO] [stdout] 95 |         let body_len = body.encode(&mut b[self.n..], secret_key)?;
[INFO] [stdout]    |                                           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/options/helpers.rs:18:42
[INFO] [stdout]    |
[INFO] [stdout] 18 |         let value = str::from_utf8(&data[2..2 + length]).unwrap().to_owned();
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/wire/builder.rs:119:39
[INFO] [stdout]     |
[INFO] [stdout] 119 |         let n = options.encode(&mut b[self.n..], secret_key)?;
[INFO] [stdout]     |                                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/wire/builder.rs:141:39
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let n = options.encode(&mut b[self.n..], None)?;
[INFO] [stdout]     |                                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/options/helpers.rs:30:44
[INFO] [stdout]    |
[INFO] [stdout] 30 |         NetworkEndian::write_u16(&mut data[0..], value.len() as u16);
[INFO] [stdout]    |                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/wire/builder.rs:155:38
[INFO] [stdout]     |
[INFO] [stdout] 155 |         let n = option.encode(&mut b[self.n..])?;
[INFO] [stdout]     |                                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/options/helpers.rs:31:19
[INFO] [stdout]    |
[INFO] [stdout] 31 |         &mut data[2..value.len() + 2].copy_from_slice(value);
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/wire/builder.rs:173:12
[INFO] [stdout]     |
[INFO] [stdout] 173 |         &b[self.n..self.n + SIGNATURE_LEN].copy_from_slice(&sig);
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/options/helpers.rs:43:37
[INFO] [stdout]    |
[INFO] [stdout] 43 |         let value = Vec::from(&data[2..2 + length]);
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/wire/container.rs:39:15
[INFO] [stdout]    |
[INFO] [stdout] 39 |         &data[offsets::ID..offsets::BODY]
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/options/helpers.rs:54:19
[INFO] [stdout]    |
[INFO] [stdout] 54 |         &mut data[2..self.len() + 2].copy_from_slice(self);
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/wire/container.rs:48:15
[INFO] [stdout]    |
[INFO] [stdout] 48 |         &data[n..n + s]
[INFO] [stdout]    |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/wire/container.rs:57:15
[INFO] [stdout]    |
[INFO] [stdout] 57 |         &data[n..n + s]
[INFO] [stdout]    |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/options/helpers.rs:65:49
[INFO] [stdout]    |
[INFO] [stdout] 65 |         let raw = NetworkEndian::read_u64(&data[0..]);
[INFO] [stdout]    |                                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/wire/container.rs:67:32
[INFO] [stdout]    |
[INFO] [stdout] 67 |         OptionsIter::new(&data[n..n + s])
[INFO] [stdout]    |                                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/options/helpers.rs:79:44
[INFO] [stdout]    |
[INFO] [stdout] 79 |         NetworkEndian::write_u64(&mut data[2..], time_s);
[INFO] [stdout]    |                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/wire/container.rs:85:15
[INFO] [stdout]    |
[INFO] [stdout] 85 |         &data[n..n + s]
[INFO] [stdout]    |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/options/mod.rs:86:39
[INFO] [stdout]    |
[INFO] [stdout] 86 |         let rem = &self.buff.as_ref()[self.index..];
[INFO] [stdout]    |                                       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/wire/container.rs:118:15
[INFO] [stdout]     |
[INFO] [stdout] 118 |         &data[0..len]
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/options/mod.rs:139:25
[INFO] [stdout]     |
[INFO] [stdout] 139 |             rem = &data[i..];
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/options/mod.rs:150:37
[INFO] [stdout]     |
[INFO] [stdout] 150 |             i += o.encode(&mut data[i..])?;
[INFO] [stdout]     |                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:223:57
[INFO] [stdout]     |
[INFO] [stdout] 223 |         let option_kind = NetworkEndian::read_u16(&data[0..2]);
[INFO] [stdout]     |                                                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:224:56
[INFO] [stdout]     |
[INFO] [stdout] 224 |         let option_len = NetworkEndian::read_u16(&data[2..4]) as usize;
[INFO] [stdout]     |                                                        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:226:23
[INFO] [stdout]     |
[INFO] [stdout] 226 |         let d = &data[OPTION_HEADER_LEN..OPTION_HEADER_LEN + option_len];
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/page/mod.rs:222:23
[INFO] [stdout]     |
[INFO] [stdout] 222 |                 &buff[i..],
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:338:44
[INFO] [stdout]     |
[INFO] [stdout] 338 |         NetworkEndian::write_u16(&mut data[0..2], option_kinds::PUBKEY);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/page/mod.rs:280:52
[INFO] [stdout]     |
[INFO] [stdout] 280 |             let n = b.encode(None, None, &mut buff[i..])?;
[INFO] [stdout]     |                                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:339:44
[INFO] [stdout]     |
[INFO] [stdout] 339 |         NetworkEndian::write_u16(&mut data[2..4], PUBLIC_KEY_LEN as u16);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:341:19
[INFO] [stdout]     |
[INFO] [stdout] 341 |         &mut data[OPTION_HEADER_LEN..OPTION_HEADER_LEN + PUBLIC_KEY_LEN]
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:380:44
[INFO] [stdout]     |
[INFO] [stdout] 380 |         NetworkEndian::write_u16(&mut data[0..2], option_kinds::PEER_ID);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:381:44
[INFO] [stdout]     |
[INFO] [stdout] 381 |         NetworkEndian::write_u16(&mut data[2..4], ID_LEN as u16);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/net/request.rs:110:42
[INFO] [stdout]     |
[INFO] [stdout] 110 |                 id.copy_from_slice(&body[0..ID_LEN]);
[INFO] [stdout]     |                                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:383:19
[INFO] [stdout]     |
[INFO] [stdout] 383 |         &mut data[OPTION_HEADER_LEN..OPTION_HEADER_LEN + ID_LEN].copy_from_slice(&self.peer_id);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/net/request.rs:115:42
[INFO] [stdout]     |
[INFO] [stdout] 115 |                 id.copy_from_slice(&body[0..ID_LEN]);
[INFO] [stdout]     |                                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:416:44
[INFO] [stdout]     |
[INFO] [stdout] 416 |         NetworkEndian::write_u16(&mut data[0..2], option_kinds::PREV_SIG);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/net/request.rs:120:42
[INFO] [stdout]     |
[INFO] [stdout] 120 |                 id.copy_from_slice(&body[0..ID_LEN]);
[INFO] [stdout]     |                                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:417:44
[INFO] [stdout]     |
[INFO] [stdout] 417 |         NetworkEndian::write_u16(&mut data[2..4], SIGNATURE_LEN as u16);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/net/request.rs:125:42
[INFO] [stdout]     |
[INFO] [stdout] 125 |                 id.copy_from_slice(&body[0..ID_LEN]);
[INFO] [stdout]     |                                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:419:19
[INFO] [stdout]     |
[INFO] [stdout] 419 |         &mut data[OPTION_HEADER_LEN..OPTION_HEADER_LEN + SIGNATURE_LEN].copy_from_slice(&self.sig);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/net/request.rs:130:42
[INFO] [stdout]     |
[INFO] [stdout] 130 |                 id.copy_from_slice(&body[0..ID_LEN]);
[INFO] [stdout]     |                                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:456:44
[INFO] [stdout]     |
[INFO] [stdout] 456 |         NetworkEndian::write_u16(&mut data[0..2], option_kinds::KIND);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/net/request.rs:134:54
[INFO] [stdout]     |
[INFO] [stdout] 134 |                 let pages = Page::decode_pages(&body[ID_LEN..], key_source).unwrap();
[INFO] [stdout]     |                                                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:457:44
[INFO] [stdout]     |
[INFO] [stdout] 457 |         NetworkEndian::write_u16(&mut data[2..4], value.len() as u16);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/net/request.rs:140:42
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 id.copy_from_slice(&body[0..ID_LEN]);
[INFO] [stdout]     |                                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:459:19
[INFO] [stdout]     |
[INFO] [stdout] 459 |         &mut data[OPTION_HEADER_LEN..OPTION_HEADER_LEN + value.len()].copy_from_slice(&value);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/net/request.rs:142:54
[INFO] [stdout]     |
[INFO] [stdout] 142 |                 let pages = Page::decode_pages(&body[ID_LEN..], key_source).unwrap();
[INFO] [stdout]     |                                                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:494:44
[INFO] [stdout]     |
[INFO] [stdout] 494 |         NetworkEndian::write_u16(&mut data[0..2], option_kinds::NAME);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/net/request.rs:148:42
[INFO] [stdout]     |
[INFO] [stdout] 148 |                 id.copy_from_slice(&body[0..ID_LEN]);
[INFO] [stdout]     |                                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:495:44
[INFO] [stdout]     |
[INFO] [stdout] 495 |         NetworkEndian::write_u16(&mut data[2..4], self.value.len() as u16);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/net/request.rs:150:54
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let pages = Page::decode_pages(&body[ID_LEN..], key_source).unwrap();
[INFO] [stdout]     |                                                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:497:19
[INFO] [stdout]     |
[INFO] [stdout] 497 |         &mut data[OPTION_HEADER_LEN..OPTION_HEADER_LEN + self.value.len()]
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/net/request.rs:156:42
[INFO] [stdout]     |
[INFO] [stdout] 156 |                 id.copy_from_slice(&body[0..ID_LEN]);
[INFO] [stdout]     |                                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:511:34
[INFO] [stdout]     |
[INFO] [stdout] 511 |         ip.copy_from_slice(&data[0..4]);
[INFO] [stdout]     |                                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/net/request.rs:216:61
[INFO] [stdout]     |
[INFO] [stdout] 216 |                 let i = Page::encode_pages(pages, &mut buff[ID_LEN..]).unwrap();
[INFO] [stdout]     |                                                             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:512:50
[INFO] [stdout]     |
[INFO] [stdout] 512 |         let port = NetworkEndian::read_u16(&data[4..6]);
[INFO] [stdout]     |                                                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/net/request.rs:238:61
[INFO] [stdout]     |
[INFO] [stdout] 238 |                 let i = Page::encode_pages(pages, &mut buff[ID_LEN..]).unwrap();
[INFO] [stdout]     |                                                             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:522:44
[INFO] [stdout]     |
[INFO] [stdout] 522 |         NetworkEndian::write_u16(&mut data[0..2], option_kinds::ADDR_IPV4);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:523:44
[INFO] [stdout]     |
[INFO] [stdout] 523 |         NetworkEndian::write_u16(&mut data[2..4], 6);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/net/request.rs:248:61
[INFO] [stdout]     |
[INFO] [stdout] 248 |                 let i = Page::encode_pages(pages, &mut buff[ID_LEN..]).unwrap();
[INFO] [stdout]     |                                                             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:525:19
[INFO] [stdout]     |
[INFO] [stdout] 525 |         &mut data[OPTION_HEADER_LEN..OPTION_HEADER_LEN + 4].copy_from_slice(&self.ip);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/options/mod.rs:526:44
[INFO] [stdout]     |
[INFO] [stdout] 526 |         NetworkEndian::write_u16(&mut data[OPTION_HEADER_LEN + 4..], self.port);
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/net/response.rs:183:62
[INFO] [stdout]     |
[INFO] [stdout] 183 |                 let (options, _n) = Options::parse_vec(&body[ID_LEN..]).unwrap();
[INFO] [stdout]     |                                                              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/net/response.rs:207:42
[INFO] [stdout]     |
[INFO] [stdout] 207 |                 id.copy_from_slice(&body[0..ID_LEN]);
[INFO] [stdout]     |                                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/net/response.rs:209:54
[INFO] [stdout]     |
[INFO] [stdout] 209 |                 let pages = Page::decode_pages(&body[ID_LEN..], key_source).unwrap();
[INFO] [stdout]     |                                                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:539:34
[INFO] [stdout]     |
[INFO] [stdout] 539 |         ip.copy_from_slice(&data[0..16]);
[INFO] [stdout]     |                                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/net/response.rs:215:42
[INFO] [stdout]     |
[INFO] [stdout] 215 |                 id.copy_from_slice(&body[0..ID_LEN]);
[INFO] [stdout]     |                                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:540:50
[INFO] [stdout]     |
[INFO] [stdout] 540 |         let port = NetworkEndian::read_u16(&data[16..18]);
[INFO] [stdout]     |                                                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/net/response.rs:217:54
[INFO] [stdout]     |
[INFO] [stdout] 217 |                 let pages = Page::decode_pages(&body[ID_LEN..], key_source).unwrap();
[INFO] [stdout]     |                                                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:550:44
[INFO] [stdout]     |
[INFO] [stdout] 550 |         NetworkEndian::write_u16(&mut data[0..2], option_kinds::ADDR_IPV6);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/net/response.rs:259:31
[INFO] [stdout]     |
[INFO] [stdout] 259 |                 body = (&buff[0..4]).to_vec();
[INFO] [stdout]     |                               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:551:44
[INFO] [stdout]     |
[INFO] [stdout] 551 |         NetworkEndian::write_u16(&mut data[2..4], 18);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:553:19
[INFO] [stdout]     |
[INFO] [stdout] 553 |         &mut data[OPTION_HEADER_LEN..OPTION_HEADER_LEN + 16].copy_from_slice(&self.ip);
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/net/response.rs:279:65
[INFO] [stdout]     |
[INFO] [stdout] 279 |                 let n = Options::encode_vec(&options, &mut buff[ID_LEN..]).unwrap();
[INFO] [stdout]     |                                                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/net/response.rs:287:62
[INFO] [stdout]     |
[INFO] [stdout] 287 |                 let n = Page::encode_pages(&pages, &mut buff[ID_LEN..]).unwrap();
[INFO] [stdout]     |                                                              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/options/mod.rs:554:44
[INFO] [stdout]     |
[INFO] [stdout] 554 |         NetworkEndian::write_u16(&mut data[OPTION_HEADER_LEN + 16..], self.port);
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/net/response.rs:295:62
[INFO] [stdout]     |
[INFO] [stdout] 295 |                 let n = Page::encode_pages(&pages, &mut buff[ID_LEN..]).unwrap();
[INFO] [stdout]     |                                                              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:603:44
[INFO] [stdout]     |
[INFO] [stdout] 603 |         NetworkEndian::write_u16(&mut data[0..2], option_kinds::META);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:604:44
[INFO] [stdout]     |
[INFO] [stdout] 604 |         NetworkEndian::write_u16(&mut data[2..4], meta.len() as u16);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:606:19
[INFO] [stdout]     |
[INFO] [stdout] 606 |         &mut data[OPTION_HEADER_LEN..OPTION_HEADER_LEN + meta.len()]
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:638:49
[INFO] [stdout]     |
[INFO] [stdout] 638 |         let raw = NetworkEndian::read_u64(&data[0..8]);
[INFO] [stdout]     |                                                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:649:44
[INFO] [stdout]     |
[INFO] [stdout] 649 |         NetworkEndian::write_u16(&mut data[0..2], option_kinds::ISSUED);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:650:44
[INFO] [stdout]     |
[INFO] [stdout] 650 |         NetworkEndian::write_u16(&mut data[2..4], 8);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:652:44
[INFO] [stdout]     |
[INFO] [stdout] 652 |         NetworkEndian::write_u64(&mut data[4..12], self.when.as_secs());
[INFO] [stdout]     |                                            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:677:49
[INFO] [stdout]     |
[INFO] [stdout] 677 |         let raw = NetworkEndian::read_u64(&data[0..8]);
[INFO] [stdout]     |                                                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:687:44
[INFO] [stdout]     |
[INFO] [stdout] 687 |         NetworkEndian::write_u16(&mut data[0..2], option_kinds::EXPIRY);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:688:44
[INFO] [stdout]     |
[INFO] [stdout] 688 |         NetworkEndian::write_u16(&mut data[2..4], 8);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:690:44
[INFO] [stdout]     |
[INFO] [stdout] 690 |         NetworkEndian::write_u64(&mut data[4..12], self.when.as_secs());
[INFO] [stdout]     |                                            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:726:44
[INFO] [stdout]     |
[INFO] [stdout] 726 |         NetworkEndian::write_u16(&mut data[0..2], option_kinds::LIMIT);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:727:44
[INFO] [stdout]     |
[INFO] [stdout] 727 |         NetworkEndian::write_u16(&mut data[2..4], 4);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:728:44
[INFO] [stdout]     |
[INFO] [stdout] 728 |         NetworkEndian::write_u32(&mut data[4..8], self.n);
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/options/mod.rs:804:29
[INFO] [stdout]     |
[INFO] [stdout] 804 |         let encoded = &data[0..n1];
[INFO] [stdout]     |                             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/base/body.rs:382:20
[INFO] [stdout]     |
[INFO] [stdout] 382 |             &mut d[0..raw.len()].copy_from_slice(&raw);
[INFO] [stdout]     |                    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/base/mod.rs:50:48
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let (v, n) = match T::parse(&self.buff[self.index..]) {
[INFO] [stdout]    |                                                ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/base/mod.rs:80:41
[INFO] [stdout]    |
[INFO] [stdout] 80 |             index += i.encode(&mut buff[index..])?;
[INFO] [stdout]    |                                         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/wire/header.rs:26:53
[INFO] [stdout]    |
[INFO] [stdout] 26 |         NetworkEndian::read_u16(&self.buff.as_ref()[offsets::PROTO_VERSION..])
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/wire/header.rs:30:53
[INFO] [stdout]    |
[INFO] [stdout] 30 |         NetworkEndian::read_u16(&self.buff.as_ref()[offsets::APPLICATION_ID..])
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/wire/header.rs:34:63
[INFO] [stdout]    |
[INFO] [stdout] 34 |         let raw = NetworkEndian::read_u16(&self.buff.as_ref()[offsets::OBJECT_KIND..]);
[INFO] [stdout]    |                                                               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/wire/header.rs:39:63
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let raw = NetworkEndian::read_u16(&self.buff.as_ref()[offsets::FLAGS..]);
[INFO] [stdout]    |                                                               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/wire/header.rs:44:53
[INFO] [stdout]    |
[INFO] [stdout] 44 |         NetworkEndian::read_u16(&self.buff.as_ref()[offsets::INDEX..])
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/wire/header.rs:48:53
[INFO] [stdout]    |
[INFO] [stdout] 48 |         NetworkEndian::read_u16(&self.buff.as_ref()[offsets::DATA_LEN..]) as usize
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/wire/header.rs:52:53
[INFO] [stdout]    |
[INFO] [stdout] 52 |         NetworkEndian::read_u16(&self.buff.as_ref()[offsets::PRIVATE_OPTIONS_LEN..]) as usize
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/wire/header.rs:56:53
[INFO] [stdout]    |
[INFO] [stdout] 56 |         NetworkEndian::read_u16(&self.buff.as_ref()[offsets::PUBLIC_OPTIONS_LEN..]) as usize
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/wire/header.rs:72:58
[INFO] [stdout]    |
[INFO] [stdout] 72 |         NetworkEndian::write_u16(&mut self.buff.as_mut()[offsets::PROTO_VERSION..], version)
[INFO] [stdout]    |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/wire/header.rs:78:37
[INFO] [stdout]    |
[INFO] [stdout] 78 |             &mut self.buff.as_mut()[offsets::APPLICATION_ID..],
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/wire/header.rs:85:58
[INFO] [stdout]    |
[INFO] [stdout] 85 |         NetworkEndian::write_u16(&mut self.buff.as_mut()[offsets::FLAGS..], flags.bits())
[INFO] [stdout]    |                                                          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/wire/header.rs:90:58
[INFO] [stdout]    |
[INFO] [stdout] 90 |         NetworkEndian::write_u16(&mut self.buff.as_mut()[offsets::OBJECT_KIND..], kind.into())
[INFO] [stdout]    |                                                          ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/wire/header.rs:95:58
[INFO] [stdout]    |
[INFO] [stdout] 95 |         NetworkEndian::write_u16(&mut self.buff.as_mut()[offsets::INDEX..], index)
[INFO] [stdout]    |                                                          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/wire/header.rs:101:37
[INFO] [stdout]     |
[INFO] [stdout] 101 |             &mut self.buff.as_mut()[offsets::DATA_LEN..],
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/wire/header.rs:109:37
[INFO] [stdout]     |
[INFO] [stdout] 109 |             &mut self.buff.as_mut()[offsets::PRIVATE_OPTIONS_LEN..],
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/wire/header.rs:117:37
[INFO] [stdout]     |
[INFO] [stdout] 117 |             &mut self.buff.as_mut()[offsets::PUBLIC_OPTIONS_LEN..],
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/wire/builder.rs:56:11
[INFO] [stdout]    |
[INFO] [stdout] 56 |         d[HEADER_LEN..HEADER_LEN + ID_LEN].clone_from_slice(id);
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/wire/builder.rs:95:43
[INFO] [stdout]    |
[INFO] [stdout] 95 |         let body_len = body.encode(&mut b[self.n..], secret_key)?;
[INFO] [stdout]    |                                           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/wire/builder.rs:119:39
[INFO] [stdout]     |
[INFO] [stdout] 119 |         let n = options.encode(&mut b[self.n..], secret_key)?;
[INFO] [stdout]     |                                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/wire/builder.rs:141:39
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let n = options.encode(&mut b[self.n..], None)?;
[INFO] [stdout]     |                                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/wire/builder.rs:155:38
[INFO] [stdout]     |
[INFO] [stdout] 155 |         let n = option.encode(&mut b[self.n..])?;
[INFO] [stdout]     |                                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/wire/builder.rs:173:12
[INFO] [stdout]     |
[INFO] [stdout] 173 |         &b[self.n..self.n + SIGNATURE_LEN].copy_from_slice(&sig);
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/wire/container.rs:39:15
[INFO] [stdout]    |
[INFO] [stdout] 39 |         &data[offsets::ID..offsets::BODY]
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/wire/container.rs:48:15
[INFO] [stdout]    |
[INFO] [stdout] 48 |         &data[n..n + s]
[INFO] [stdout]    |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/wire/container.rs:57:15
[INFO] [stdout]    |
[INFO] [stdout] 57 |         &data[n..n + s]
[INFO] [stdout]    |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/wire/container.rs:67:32
[INFO] [stdout]    |
[INFO] [stdout] 67 |         OptionsIter::new(&data[n..n + s])
[INFO] [stdout]    |                                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/wire/container.rs:85:15
[INFO] [stdout]    |
[INFO] [stdout] 85 |         &data[n..n + s]
[INFO] [stdout]    |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/wire/container.rs:118:15
[INFO] [stdout]     |
[INFO] [stdout] 118 |         &data[0..len]
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/page/mod.rs:222:23
[INFO] [stdout]     |
[INFO] [stdout] 222 |                 &buff[i..],
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/page/mod.rs:280:52
[INFO] [stdout]     |
[INFO] [stdout] 280 |             let n = b.encode(None, None, &mut buff[i..])?;
[INFO] [stdout]     |                                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/net/request.rs:110:42
[INFO] [stdout]     |
[INFO] [stdout] 110 |                 id.copy_from_slice(&body[0..ID_LEN]);
[INFO] [stdout]     |                                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/net/request.rs:115:42
[INFO] [stdout]     |
[INFO] [stdout] 115 |                 id.copy_from_slice(&body[0..ID_LEN]);
[INFO] [stdout]     |                                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/net/request.rs:120:42
[INFO] [stdout]     |
[INFO] [stdout] 120 |                 id.copy_from_slice(&body[0..ID_LEN]);
[INFO] [stdout]     |                                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/net/request.rs:125:42
[INFO] [stdout]     |
[INFO] [stdout] 125 |                 id.copy_from_slice(&body[0..ID_LEN]);
[INFO] [stdout]     |                                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/net/request.rs:130:42
[INFO] [stdout]     |
[INFO] [stdout] 130 |                 id.copy_from_slice(&body[0..ID_LEN]);
[INFO] [stdout]     |                                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/net/request.rs:134:54
[INFO] [stdout]     |
[INFO] [stdout] 134 |                 let pages = Page::decode_pages(&body[ID_LEN..], key_source).unwrap();
[INFO] [stdout]     |                                                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/net/request.rs:140:42
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 id.copy_from_slice(&body[0..ID_LEN]);
[INFO] [stdout]     |                                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/net/request.rs:142:54
[INFO] [stdout]     |
[INFO] [stdout] 142 |                 let pages = Page::decode_pages(&body[ID_LEN..], key_source).unwrap();
[INFO] [stdout]     |                                                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/net/request.rs:148:42
[INFO] [stdout]     |
[INFO] [stdout] 148 |                 id.copy_from_slice(&body[0..ID_LEN]);
[INFO] [stdout]     |                                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/net/request.rs:150:54
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let pages = Page::decode_pages(&body[ID_LEN..], key_source).unwrap();
[INFO] [stdout]     |                                                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/net/request.rs:156:42
[INFO] [stdout]     |
[INFO] [stdout] 156 |                 id.copy_from_slice(&body[0..ID_LEN]);
[INFO] [stdout]     |                                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/net/request.rs:216:61
[INFO] [stdout]     |
[INFO] [stdout] 216 |                 let i = Page::encode_pages(pages, &mut buff[ID_LEN..]).unwrap();
[INFO] [stdout]     |                                                             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/net/request.rs:238:61
[INFO] [stdout]     |
[INFO] [stdout] 238 |                 let i = Page::encode_pages(pages, &mut buff[ID_LEN..]).unwrap();
[INFO] [stdout]     |                                                             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/net/request.rs:248:61
[INFO] [stdout]     |
[INFO] [stdout] 248 |                 let i = Page::encode_pages(pages, &mut buff[ID_LEN..]).unwrap();
[INFO] [stdout]     |                                                             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/net/response.rs:183:62
[INFO] [stdout]     |
[INFO] [stdout] 183 |                 let (options, _n) = Options::parse_vec(&body[ID_LEN..]).unwrap();
[INFO] [stdout]     |                                                              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/net/response.rs:207:42
[INFO] [stdout]     |
[INFO] [stdout] 207 |                 id.copy_from_slice(&body[0..ID_LEN]);
[INFO] [stdout]     |                                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/net/response.rs:209:54
[INFO] [stdout]     |
[INFO] [stdout] 209 |                 let pages = Page::decode_pages(&body[ID_LEN..], key_source).unwrap();
[INFO] [stdout]     |                                                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/net/response.rs:215:42
[INFO] [stdout]     |
[INFO] [stdout] 215 |                 id.copy_from_slice(&body[0..ID_LEN]);
[INFO] [stdout]     |                                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/net/response.rs:217:54
[INFO] [stdout]     |
[INFO] [stdout] 217 |                 let pages = Page::decode_pages(&body[ID_LEN..], key_source).unwrap();
[INFO] [stdout]     |                                                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/net/response.rs:259:31
[INFO] [stdout]     |
[INFO] [stdout] 259 |                 body = (&buff[0..4]).to_vec();
[INFO] [stdout]     |                               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/net/response.rs:279:65
[INFO] [stdout]     |
[INFO] [stdout] 279 |                 let n = Options::encode_vec(&options, &mut buff[ID_LEN..]).unwrap();
[INFO] [stdout]     |                                                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/net/response.rs:287:62
[INFO] [stdout]     |
[INFO] [stdout] 287 |                 let n = Page::encode_pages(&pages, &mut buff[ID_LEN..]).unwrap();
[INFO] [stdout]     |                                                              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/net/response.rs:295:62
[INFO] [stdout]     |
[INFO] [stdout] 295 |                 let n = Page::encode_pages(&pages, &mut buff[ID_LEN..]).unwrap();
[INFO] [stdout]     |                                                              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/net/mod.rs:175:30
[INFO] [stdout]     |
[INFO] [stdout] 175 |         page.raw = Some(buff[0..n].to_vec());
[INFO] [stdout]     |                              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::timestamp`: use `timestamp_opt()` instead
[INFO] [stdout]   --> src/types/datetime.rs:27:21
[INFO] [stdout]    |
[INFO] [stdout] 27 |         let u = Utc.timestamp(self.0 as i64, 0);
[INFO] [stdout]    |                     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::timestamp`: use `timestamp_opt()` instead
[INFO] [stdout]   --> src/types/datetime.rs:34:21
[INFO] [stdout]    |
[INFO] [stdout] 34 |         let u = Utc.timestamp(self.0 as i64, 0);
[INFO] [stdout]    |                     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::timestamp`: use `timestamp_opt()` instead
[INFO] [stdout]   --> src/types/datetime.rs:42:21
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let u = Utc.timestamp(self.0 as i64, 0);
[INFO] [stdout]    |                     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::timestamp`: use `timestamp_opt()` instead
[INFO] [stdout]   --> src/types/datetime.rs:27:21
[INFO] [stdout]    |
[INFO] [stdout] 27 |         let u = Utc.timestamp(self.0 as i64, 0);
[INFO] [stdout]    |                     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::timestamp`: use `timestamp_opt()` instead
[INFO] [stdout]   --> src/types/datetime.rs:34:21
[INFO] [stdout]    |
[INFO] [stdout] 34 |         let u = Utc.timestamp(self.0 as i64, 0);
[INFO] [stdout]    |                     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::timestamp`: use `timestamp_opt()` instead
[INFO] [stdout]   --> src/types/datetime.rs:42:21
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let u = Utc.timestamp(self.0 as i64, 0);
[INFO] [stdout]    |                     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0616]: field `0` of struct `sodiumoxide::crypto::sign::Signature` is private
[INFO] [stdout]   --> src/crypto/sodium.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 |     Ok(sig.0.into())
[INFO] [stdout]    |            ^ private field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0616]: field `0` of struct `sodiumoxide::crypto::sign::Signature` is private
[INFO] [stdout]   --> src/crypto/sodium.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 |     Ok(sig.0.into())
[INFO] [stdout]    |            ^ private field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `from_slice` found for struct `sodiumoxide::crypto::sign::Signature` in the current scope
[INFO] [stdout]    --> src/crypto/sodium.rs:39:41
[INFO] [stdout]     |
[INFO] [stdout] 39  |     let sig = sign::ed25519::Signature::from_slice(signature).unwrap();
[INFO] [stdout]     |                                         ^^^^^^^^^^ function or associated item not found in `Signature`
[INFO] [stdout]     |
[INFO] [stdout] note: if you're trying to build a new `sodiumoxide::crypto::sign::Signature` consider using one of the following associated functions:
[INFO] [stdout]       sodiumoxide::crypto::sign::Signature::from_bytes
[INFO] [stdout]       sodiumoxide::crypto::sign::Signature::new
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/ed25519-1.5.3/src/lib.rs:291:5
[INFO] [stdout]     |
[INFO] [stdout] 291 |     pub fn from_bytes(bytes: &[u8]) -> signature::Result<Self> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 330 |     pub fn new(bytes: [u8; Self::BYTE_SIZE]) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `from_slice` found for struct `sodiumoxide::crypto::sign::Signature` in the current scope
[INFO] [stdout]    --> src/crypto/sodium.rs:39:41
[INFO] [stdout]     |
[INFO] [stdout] 39  |     let sig = sign::ed25519::Signature::from_slice(signature).unwrap();
[INFO] [stdout]     |                                         ^^^^^^^^^^ function or associated item not found in `Signature`
[INFO] [stdout]     |
[INFO] [stdout] note: if you're trying to build a new `sodiumoxide::crypto::sign::Signature` consider using one of the following associated functions:
[INFO] [stdout]       sodiumoxide::crypto::sign::Signature::from_bytes
[INFO] [stdout]       sodiumoxide::crypto::sign::Signature::new
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/ed25519-1.5.3/src/lib.rs:291:5
[INFO] [stdout]     |
[INFO] [stdout] 291 |     pub fn from_bytes(bytes: &[u8]) -> signature::Result<Self> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 330 |     pub fn new(bytes: [u8; Self::BYTE_SIZE]) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors; 122 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0599, E0616.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0599`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `dsf-core` (lib) due to 3 previous errors; 122 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: aborting due to 2 previous errors; 124 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0599, E0616.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0599`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `dsf-core` (lib test) due to 3 previous errors; 124 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "7d2f9d41c50c2b51c1e1707b57a4f176ae5ca146cdb157062bb29548d74a0ed5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7d2f9d41c50c2b51c1e1707b57a4f176ae5ca146cdb157062bb29548d74a0ed5", kill_on_drop: false }`
[INFO] [stdout] 7d2f9d41c50c2b51c1e1707b57a4f176ae5ca146cdb157062bb29548d74a0ed5
